// 同步代码  瞬间执行完
// 解释的问题出来了 同步代码都会和我们看到的不一样
// 变量提升 
// 背后有个什么机制 执行栈 2个阶段
// 代码的编译阶段 很快的执行完
// 执行阶段 a 提前完成了声明 变量提升
// java c javac a.java编译 (错误，变量的声明 作用域 )  .class 运行 .class
// 编译  引擎
// js 中变量 独立存在 变量类型由值决定 在特定的作用域下声明 依附于作用域 
// 作用域 优先于变量存在的  全局作用域 在执行栈中执行时
// 变量提升 
// lhs rhs
// 在js 中使用变量  到相应的作用域找出来 
a=1;
var a;// 申明了a  undefinde
console.log(a); // 1